Continuous audio interaction with interruptive audio

ABSTRACT

According to an example implementation, a method may include playing, by a computing device, first audio generated by a first application, determining that the first audio generated by the first application should be interrupted based on a notification associated with a second application, pausing the first audio generated by the first application, playing interruptive audio generated by the second application during the pausing of the first audio, identifying a portion of the first audio that was previously played before the first audio was paused, and resuming the playing of the first audio so that the portion of the first audio that was previously played is replayed.

TECHNICAL FIELD

This description relates to audio output devices.

BACKGROUND

Devices may output or play continuous audio, such as podcasts, audiobooks, movies, or music. This continuous audio may be interrupted bytime-sensitive or interruptive audio applications of the devices, suchas incoming telephone calls. Transferring from the continuous audio tothe interruptive audio and back to the continuous audio may lose thecontext or continuity of the continuous audio.

SUMMARY

According to one general aspect, method may include playing, by acomputing device, continuous or first audio generated by a firstapplication; determining that the first audio generated by the firstapplication should be interrupted based on an interrupt or interruptivenotification associated with a second application; pausing thecontinuous or first audio generated by the first application; playinginterruptive audio generated by the second application during thepausing of the continuous or first audio; identifying a portion of thecontinuous or first audio that was previously played before the firstaudio was paused; and resuming the playing continuous or first audio sothat the portion of the first audio that was previously played isreplayed.

According to another general aspect, an apparatus may include at leastone processor and at least one memory. The at least one memory mayinclude computer executable code that, when executed by the at least oneprocessor, is configured to cause the apparatus to play continuous orfirst audio generated by a first application; determine that thecontinuous or first audio generated by the first application should beinterrupted based on an interrupt or interruptive notificationassociated with a second application; pause the playing continuous orfirst audio generated by the first application; play interruptive audiogenerated by the second application during the pausing of the continuousor first audio; identify a portion of the continuous or first audio thatwas previously played before the continuous or first audio was paused;and resume the playing of the continuous or first audio so that theportion of the continuous or first audio that was previously played isreplayed.

According to another general aspect, a non-transitory computer-readablestorage medium may include computer-executable code stored thereon that,when executed by a processor, is configured to cause an applicationexecuted by the processor to play continuous or first audio; receive atemporary interrupt or interruption message from an operating systemexecuted by the processor; pause the playing the continuous or firstaudio based on receiving on the temporary interrupt or interruptionmessage; receive a resume message from the operating system; identify aportion of the continuous or first audio that was previously playedbefore the continuous or first audio was paused; and resume playing thecontinuous or first audio based on receiving the resume notification,the resuming including replaying a portion of the continuous or firstaudio which was playing before the pause or playing the continuous orfirst audio based on receiving the resume notification so that theportion of the first audio that was previously played is replayed.

According to another general aspect, a method may include determining,by a first computing device, to interrupt playing of continuous or firstaudio by a second computing device based on receiving a prompt; sendinga pause message to the second computing device based on the determining,the pause message instructing the second computing device to pauseplaying the continuous or first audio; playing interruptive audio aftersending the pause message; and sending a resume message to the secondcomputing device after playing the interruptive audio, the resumemessage instructing the second computing device to resume playing thecontinuous or first audio.

According to another general aspect, an apparatus may include at leastone processor and at least one memory. The at least one memory mayinclude computer executable code that, when executed by the at least oneprocessor, is configured to cause the apparatus to determine tointerrupt playing of continuous or first audio by a computing devicebased on receiving a prompt; send a pause message to the computingdevice based on the determining, the pause message instructing thecomputing device to pause playing the continuous or first audio; playinterruptive audio after sending the pause message; and send a resumemessage to the computing device after playing the interruptive audio,the resume message instructing the computing device to resume playingthe continuous or first audio.

According to another general aspect, a non-transitory computer-readablestorage medium may include computer-executable code stored thereon that,when executed by a processor, is configured to cause an applicationexecuted by the processor to determine to interrupt playing ofcontinuous or first audio by a computing device based on receiving aprompt; send a pause message to the computing device based on thedetermining, the pause message instructing the computing device to pauseplaying the continuous or first audio; play interruptive audio aftersending the pause message; and send a resume message to the computingdevice after playing the interruptive audio, the resume messageinstructing the computing device to resume playing the continuous orfirst audio.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram of a computing device according toan example implementation.

FIG. 2 is a vertical-time sequence diagram showing actions performed by,and messages exchanged between, a first application, an operatingsystem, and a second application of the computing device shown in FIG.1.

FIG. 3 is a vertical-time sequence diagram showing messages sentbetween, and outputs provided by, a first device and a second device.

FIG. 4 is a flowchart of a method according to an exampleimplementation.

FIG. 5 is a flowchart of a method according to another exampleimplementation.

FIG. 6 is a block diagram showing example or representative computingdevices and associated elements that may be used to implement thesystems and methods of FIGS. 1-5.

DETAILED DESCRIPTION

FIG. 1 is an exemplary block diagram of a computing device 100 accordingto an example implementation. The computing device 100 may include, forexample, a smart phone, a personal digital assistant (PDA), a cellularphone with computing features and/or multiple application features, aniPhone®, or a Droid® smartphone, according to example implementations.The computing device 100 may be capable of running or performingmultiple software applications at the same time. The computing device100 may perform more than one application at a given time; however, thecomputing device 100 may have to allocate shared resources between themultiple applications.

The computing device 100 may include an audio output 102. The audiooutput 102 may include, for example, a speaker, and may play audioand/or provide different kinds of audio output based on applicationsexecuted by the computing device 100. The audio output 102 may, forexample, play or provide continuous or first audio output, which isnon-time sensitive, but which provides audio output which is listened toby a user of the computing device 100 over an extended period of time.The continuous or first audio played or output by the audio output 102may include, for example, playing podcasts, the sound portions ofmovies, audio books, or music. The continuous or first audio output maybe based on an application executed by the computing device 100.

The audio output 102 also may play and/or output interruptive audio.Interruptive audio may include time sensitive audio output which islistened to for a shorter period of time. The interruptive audio mayinclude, for example, a notification of emails, text messages orcalendar alerts, the speech output of a turn-by-turn navigationapplication, the notification of a phone call, or the voice output of aphone call itself. The interruptive audio may be based on anotherapplication executed by the computing device 100.

The computing device 100 may allocate the resources of the audio output102 so that two applications are not playing and/or providing output outof the audio output 102 at the same time. The computing device 100 may,for example, allow interruptive audio to take priority over continuousor first audio.

The computing device 100 may include multiple applications. The multipleapplications of the computing device 100 may provide continuous or firstaudio output and/or interruptive audio output. The computing device 100,as shown in FIG. 1, includes two applications, a first application 104,and a second application 106; however, the computing device 100 mayinclude any number of applications.

In the example shown in FIG. 1, the first application 104 may playand/or output continuous or first audio 108 via the audio output 102.The first application 104 may include, for example, an audio player suchas a podcast player, an audio book player or music player, or mayinclude a movie player which has both a video and an audio outputcomponent. The first application 104 may play and/or output thecontinuous or first audio 108 via the audio output 102.

The second application 106 may include an application which plays and/oroutputs interruptive audio 110. The second application 106 may include,for example, an email program, a text message program, a calendarprogram which provides audio alerts, a turn-by-turn navigationapplication which provides audio output of turns (such as, “turn left inone hundred feet”), or a telephone application which provides anotification of incoming phone calls and also plays and/or outputs thespeech received by the computing device 100. The second application 106may play and/or output the interruptive audio 110 via the audio output102.

A problem may arise when the first application 104 is playing and/oroutputting the continuous or first audio 108 via the audio output 102and the second application 106 needs to play and/or output theinterruptive audio 110 via the audio output 102; allowing both the firstapplication 104, and the second application 106, to play and/or outputtheir respective audio outputs at the same time, may result in neitherof the outputs 108, 110 being intelligible and/or one or both of theoutputs 108, 110 being drowned out. Thus, the computing device 100 mayneed to prioritize between allocating the shared resource of the audiooutput 102 between the audio outputs 108, 110 of the first application104 and the second application 106.

The computing device 100 may include an operating system 112. Theoperating system 112 may not necessarily be seen by, or visible to, auser of the computing device 100. The operating system 112 may allocatethe resources of the computing device 100 between the differentapplications in the computing device 100, such as the first application104 and the second application 106. The resources of the computingdevice 100 may include, for example, the audio output 102, a processor114, such as a microprocessor, a memory 116, and input and outputcomponents of the computing device 100. The processor 114 may executeinstructions, such as the instructions stored in the memory 116, may runapplications, such as the applications 104, 106, and/or may receiveinput and provide output from and to the input and output devicesdescribed herein. The memory 116, which may include any type of memory,such as read only memory (ROM), random access memory (RAM), and/or flashmemory, may store program instructions and/or data. The operating system112 may, for example, allocate processor 114 resources, memory 116resources, and/or the audio output 102 resource between the firstapplication 104 and the second application 106. The operating system 112also may receive and send messages from and to the first application 104and the second application 106, discussed further below.

The operating system 112 may act as an interface between theapplications, such as the first application 104 and the secondapplication 106, and the resources of the computing device 100. Inputand output resources of the computing device 100 may include, forexample, a visual output and/or tactile input 118. The visual outputand/or tactile input 118 may include, for example, a display which maydisplay graphical icons, notifications, video, and other graphicaloutputs. The visual output/tactile input 118 also may receive input froma user, such as by providing a touch screen in the computing device 100.

The input and output resources of the computing device 100 also mayinclude an antenna 120. The antenna 120 may extend out of the computingdevice 100, or may be internal to the computing device 100. The antenna120 may serve to receive and transmit wireless signals between thecomputing device 100 and other computing devices, such as base stations,cellular towers, access points, node B's, or other devices which servemobile computing devices, or even other mobile computing devices.

The input and output resources of the computing device 100 also mayinclude a keyboard input 122. The keyboard input 122 may receive textinput from a user. While the computing device 100 shown in FIG. 1includes a keyboard input 122, the computing device 100 need notnecessarily include the keyboard input 122. The computing device 100 mayinstead (or also) receive text input via a touch screen, such as thevisual output/tactile input 118.

The input and output resources of the computing device 100 also mayinclude an audio input 124. The audio input 124 may include, forexample, a microphone which receives audio input such as speech from auser of the computing device. The operating system 112 may interfacebetween the applications 104, 106 and any or all of the input and outputresources of the computing device 100, such as, but not limited to, theaudio output 102, visual output/tactile input 118, antenna 120, keyboardinput 122, and audio input 124.

The operating system 112 may, for example, determine to temporarilyinterrupt the continuous or first audio 108 generated by the firstapplication 104 based on an interrupt or interruptive notificationassociated with the second application 106. Based on the interruption,the first application 104 may pause the continuous or first audio 108.The second application 106 may generate the interruptive audio 110during the pausing of the continuous or first audio 108. After theinterruptive audio 110 has completed, the first application 104 mayresume playing and/or outputting the continuous or first audio 108.However, simply resuming at the point where the first application 104paused playing and/or outputting the continuous or first audio 108 mayresult in a loss of context or continuity of the continuous or firstaudio 108. Therefore, the first application 104 may identify a portionof the continuous or first audio 108 that was previously played oroutputted before the continuous or first audio 108 was paused. The firstapplication 104 may identify the portion by determining a time, such asfive second or ten seconds, which should be replayed, or identifying acomplete sentence or a scene which was interrupted and which should bereplayed, according to example embodiments. The first application 104may replay and/or re-output or regenerate a portion of the continuous orfirst audio 108 which was output or generated before the pausing orinterruption, and/or resume playing of the continuous or first audio 108so that the portion of the continuous or first audio 108 that waspreviously played is replayed, regaining the context of the continuousor first audio 108.

FIG. 2 is a vertical-time sequence diagram showing actions performed by,and messages exchanged between, the first application 104, the operatingsystem 112, and the second application 106. In the example shown in FIG.2, the first application 104 may be playing and/or outputting continuousor first audio 108A. The continuous or first audio 108A may include, forexample, a podcast, an audio book, music, or the sound portion of amovie.

While the first application 104 is playing and/or outputting thecontinuous or first audio 108A, the second application 106 may receiveinput 202 or a prompt. The input 202 or prompt may include, for example,a notification of a telephone call received via the antenna 120, aninput from a user of the computing device 100 (which may have beenreceived via the visual output/tactile input 118, the keyboard input122, or the audio input 124), a notification that a time of a calendaralert has come, or a determination by a turn-by-turn navigation programthat a turn instruction should be provided to the user (which may bebased on information included in the turn-by-turn navigation programcombined with global positioning system (GPS) information).

Upon receiving the input 202, the second application 106 may determinethat the second application 106 should provide, generate, play, oroutput interruptive audio 110. Based on this determination, the secondapplication 106 may send an interrupt or interruptive notificationmessage 204 to the operating system 112. The interrupt or interruptivenotification message 204 may be a notification understood by theoperating system 112 to indicate that the second application 106 needsto provide interruptive audio output 110.

The operating system 112 may receive the interrupt or interruptivenotification message 204 from the second application 106. The operatingsystem 112 may understand that the interrupt or interruptivenotification message 204 indicates that the second application 106 needsto provide, generate, play, or output interruptive audio 110. Theoperating system 112 may have stored or determined that the firstapplication 104 is providing the continuous or first audio output 108A.The operating system 112 may, for example, have previously pushed thefirst application 104 onto a top of a “stack,” giving the firstapplication 104 priority to the audio output 102. Based on receiving theinterrupt or interruptive notification message 204, and determiningand/or having stored the fact that the first application 104 isproviding the continuous or first audio 108, the operating system 112may push the second application 106 onto the top of the stack, and/orsend a temporary interruption message 206 to the first application 104.

The first application 104 may receive the temporary interruption message206 from the operating system 112. The first application 104 mayunderstand that the temporarily interruption message 206 indicates thatanother application, such as the second application 206, needs to playand/or output interruptive audio 110. Based on receiving the temporaryinterruption message 206, the first application 104 may pause thecontinuous or first audio (208). The first application 104 may identifya portion of the continuous or first audio 108A that was previouslyplayed before the pausing which should be replayed. The identifying theportion to replay by the first application 104 may include, for example,pausing the continuous or first audio, and/or setting a pointer to, apoint at which the continuous or first audio 108A was stopped (such aswhen the first application 104 received the temporary interruptionmessage 206) and/or at a tag preceding the point at which the continuousor first audio 108A was paused. Examples of storing the point at whichthe continuous or first audio 108A was paused or the location of the tagpreceding the point at which the continuous or first audio 108A waspaused include storing a bookmark, time stamp, frame count, position, orsample number of the audio file corresponding to the continuous or firstaudio output 108A.

In an example in which the continuous or first audio output 108A isstreamed to the computing device 100, such as via the antenna 120, thecomputing device 100 and/or first application 104 may store and/orbuffer the streamed data during the pausing for later output, or maysend a message to a sending device, such as a server, to pause and/orback up or rewind the streamed content, according to exampleimplementations. The first application 104 may continue generating thecontinuous or first audio output 108A for some period of time to enablebuffering and subsequent continuation of the streaming, or may bufferduring the entire time during which the continuous or first audio output108A is paused, according to example implementations.

The continuous or first audio 108A may, for example, have been taggedwith sentence beginnings, and/or the first application 104 may determinea tag of the continuous or first audio 108A. The tag may have beenincluded in the file from which the first application 104 generated thecontinuous or first audio output 108A, or the first application 104 mayfind a boundary and/or endpoint of the continuous or first audio 108A,such as based on pauses or audio energy, sentence boundary detection,end points, speech recognition, based on a transcript (such as alignmentor tagging of the continuous or first audio output 108A with the texttranscript), based on content indexing, tokenizations (such as bydetecting word boundaries), and/or based on a transcript of the text. Inthe example in which the first application 104 is providing video alongwith the audio output, the first application 104 may tag the output(which may include both the video output and the continuous or firstaudio output 108A) based on a beginning of a scene, which may, forexample, be based on a change in the video output. The first application104 may point to and/or store that tag point. In the example in whichthe first application 104 and/or the computing device 100 has stored theentire contents of the continuous or first audio output 108 which willbe played and/or outputted, the first application 104 may store thepoint at which the continuous or first audio output will resume based onthe tag. The data which the first application 104 will read to generatethe continuous or first audio output 108A may, for example, bemaintained in a continuous or first or circular buffer (which may beincluded in the memory 116), allowing the first application 104 toreturn to the tag or other point at which the first application 104 willresume the continuous or first audio output 108A. In an example in whichthe computing device 100 is receiving the data in a stream which will beplayed and/or outputted as continuous or first audio output 108A, thefirst application 104 and/or the computing device 100 may store thestreamed data for later output.

The first application 104 may pause the continuous or first audio 108Aby immediately ceasing play and/or output of the continuous or firstaudio 108A, or may gradually reduce the volume of the continuous orfirst audio output, such as by fading the continuous or first audiooutput 108A by gradually lowering the volume of the continuous or firstaudio output. This may provide a more gradual and/or seamless transitionfrom the continuous or first audio 108A to the interruptive audio 110.

At about the same time that the first application 104 pauses thecontinuous or first audio output (208), the second application 106 mayplay and/or output the interruptive audio output 110. The secondapplication 106 may play and/or output the interruptive audio 110, suchas by providing the audio notification of the email, text message orcalendar alert, by providing the speech output or turn direction of thenavigation program, and/or by providing the ring and the speech outputof a telephone call. The second application 106 may complete theinterruptive audio 110, such as the email notification and/ortext-to-speech output of the email notification, text message, orcalendar output, or providing the full turn direction of theturn-by-turn navigation program, and/or by completing the telephonecall.

Upon completing the interruptive audio 110, the second application 106may send an interruption complete message 210 to the operating system112. The interruption complete message 210 may inform the operatingsystem 112 that the second application 106 has completed playing and/oroutputting the interruptive audio output 110, and the operating system112 may pop the second application 106 off the top of the stack, and/orreallocate the audio output resources to the first application 104. Thefirst application 104 may now be back on top of the stack.

The operating system 112 may have stored and/or determined whichapplication, such as the first application 104, had its continuous orfirst audio output 108 paused during the interruptive audio output 110,such as by checking the top of the stack. The operating system 112 may,in response to receiving the interruption complete message 210 anddetermining that the first application 104 was the application which hadits continuous or first audio output 108 paused, send a resume message212 to the first application 104.

The first application 104 may receive the resume message 212 from theoperating system 112. The first application 104 may determine and/orknow that the resume message 212 provides permission and/orauthorization for the first application 104 to resume playing and/oroutputting continuous or first audio 108B.

The first application 104 may respond to receiving the resume message212 by resuming playing and/or outputting continuous or first audio108B. The first application 104 may resume playing and/or outputting thecontinuous or first audio 108B by fading the continuous or first audio108B in, gradually increasing the volume until returning to the fullvolume, or may immediately play and/or output or generate the continuousor first audio 108B at full volume.

The resuming may include replaying and/or re-outputting a portion of thecontinuous or first audio 108A, 108B which was played and/or outputtedby the first application 104 before the pausing of the continuous orfirst audio (208). The first application 104 may, for example, replayand/or re-output the portion of the continuous or first audio by playingand/or outputting a complete sentence or a complete portion or portionbeginning with the most recent tag of a file read by the firstapplication 104. Replaying and/or re-outputting the portion of thecontinuous or first audio 108 which was generated, played, or output bythe first application 104 may provide context and continuity to a userof the computing device 100. Thus, instead of the first application 104pausing the continuous or first audio 108A in mid-sentence andcontinuing the continuous or first audio 108B in the middle of the samesentence, the first application 104 may replay and/or re-output the sameentire sentence and/or some preceding sentences, giving the user orlistener of the computing device 100 the context of the continuous orfirst audio 108B. If the first application 104 was playing and/oroutputting the continuous or first audio 108A by receiving a live streamvia the antenna 120, the first application 104 may play and/or outputcontinuous or first audio 108B which was previously received via thestream (which was stored in the buffer and/or memory 116 andsubsequently read out of the buffer and/or memory 116), and thecontinuous or first audio 108B may be delayed from the received stream,according to an example implementation.

The process described with reference to FIG. 2 may be performedautomatically, and/or without user interaction or instruction. Forexample, the first application 104 may be playing and/or outputting thecontinuous or first audio 108A, such as a podcast, when the input 202,such as a phone call, prompts the second application 106 to interruptthe continuous or first audio 106A of the first application 104 (such asby the interrupt or interruptive notification message 204 and temporaryinterruption message 206). The first application 104 may pause thecontinuous or first audio (208), such as by pausing the podcast, whilethe second application 106 plays and/or outputs the interruptive audio110, such as the ring or ringtone associated with the telephone call. Ifa user of the computing device 100 does not answer the call (such as bynot providing input to the computing device 100 in response to the ringor ringtone), then the interruptive audio 110 may be complete when thesecond application 106 has finished ringing, and the first application104 may resume the continuous or first audio 108B (such as based on theinterruption complete message 210 and the resume message 212). If theuser does answer the call, such as by providing an input into thecomputing device 100 instructing the computing device 100 to take thecall, then the interruptive audio 110 may continue until the userinstructs the computing device 100 to finish the call or the computingdevice 100 receives input from another source (such as a wirelesssignal) that the call is complete. In other examples of the secondapplication 106, such as calendar alerts or turn-by-turn navigationprograms, the second application 106 may generate and finish theinterruptive audio 110 without user input.

FIG. 3 is a vertical-time sequence diagram showing messages sentbetween, and outputs provided by, a first device 302 and a second device304. The first device 302 may be a device which outputs interruptiveaudio and may include, for example, a cellular phone, a smartphone, aPDA, an iPhone, a Droid smartphone, or a turn-by-turn navigation system.The second device 304 may include a device which plays and/or outputscontinuous or first audio, such as, for example, a music player or MP3player. The first device 302 and second device 304 may, for example,both be in an automobile.

In an example implementation, the second device 304 may include a carstereo system which plays music or outputs podcasts or audio books. Inan example implementation, the first device 302 may be in wirelesscommunication with the second device 304 such as via, for example, anIEEE 802.15 Bluetooth connection, an 802.11 IEEE wireless local areanetwork (WLAN) connection, or other wireless connection. The firstdevice 302 may be capable of sending instructions to the second device304 via the wireless connection. The first device 302 may also becoupled to the second device 304 via a wired or guided connection, andmay be capable of sending instructions to the second device 304 via thewired or guided connection.

In an example implementation, the second device 304 may play and/oroutput continuous or first audio 306A. The second device 304 may playand/or output the continuous or first audio 306A which may include, forexample, a podcast or an audio book.

While the second device 304 is playing and/or outputting the continuousor first audio 306A, the first device 302 may receive a prompt 308. Theprompt 308 may include, for example, a notification of an email, textmessage, calendar alert, or phone call, or a determination that a turndirection should be provided by a turn-by-turn navigation system. Theprompt 308 may be based on a wireless signal received by the firstdevice 302, based on a user input, or based on timing determinationsand/or location determinations by the first device 302.

Based on the prompt 308, the first device 302 may send a pause message310 to the second device 304. The pause message 310 may instruct thesecond device to pause playing and/or outputting the continuous or firstaudio 306A. The pause message 310 may, for example, include a pausemessage by a remote control interface for the second device 304.

In response to receiving the pause message 310, the second device 304may pause playing and/or outputting the continuous or first audio 306A.After sending the pause message 310 to the second device 304, the firstdevice 302 may play and/or output interruptive audio 312. Theinterruptive audio 312 may include, for example, a notification of anemail, text message, calendar alert, or phone call, as well as the audiooutput of a phone call and/or a turn notification by a turn-by-turnnavigation system.

After the interruptive audio output 312 is complete, such as after anemail message, text message or calendar alert output has been provided,and/or after a phone call has been completed or a turn direction hasbeen played and/or output, the first device 302 may send a resumemessage 314 to the second device 304. The resume message 314 mayinstruct the second device 304 to resume playing and/or outputting thecontinuous or first audio 306B. The resume message 314 may, for example,include a play or un-pause instruction by a remote control interface forthe second device 306.

The second device 304 may receive the resume message 314 and respond toreceiving the resume message 314 by resuming playing and/or outputtingof the continuous or first audio 306B. In resuming playing and/oroutputting the continuous or first audio 306B, the second device 304 mayreplay and/or re-output a portion of the continuous or first audio 306Awhich was played and/or output before receiving the pause message 310.Replaying and/or -outputting the portion of the continuous or firstaudio 306A may provide continuity and/or context in the outputting ofthe continuous or first audio 306A, 306B.

To facilitate the replaying and/or re-outputting of the portion of thecontinuous or first audio 306A by the second device 304, the pausemessage 310 and/or the resume message 314 may have included aninstruction for the second device 304 to rewind the continuous or firstaudio 306A and/or to move to a previous portion where the continuous orfirst audio 306A will resume being played and/or outputted. The rewindmay include rewinding a predetermined period of time such as one second,five seconds, or ten seconds, and/or may be based on a tag. For example,the first device 302 may have listened to the continuous or first audiooutput 306A and found a tag, such as a beginning of a sentence or areduced volume, at which the second device 304 should resume playingand/or outputting the continuous or first audio 306B. The first device302 may determine a time period before the pause message 310 at whichtime the tag began, and may instruct the second device 304 to rewindthat period of time which will cause the second device 304 to resumeplaying and/or outputting the continuous or first audio 306B at thebeginning or at the determined tag point, according to an exampleimplementation. The first device 302 and/or second device 304 mayinclude any or all of the components as the computing device 100 shownin FIG. 1, according to example implementations.

FIG. 4 is a flowchart of a method 400 according to an exampleimplementation. In this example, the method 400 may include playingand/or outputting, by a computing device 100, continuous or first audio108 generated by a first application 104 (402), determining that thecontinuous or first audio 108 generated by the first application 104should be interrupted based on an interrupt or interruptive notification204 associated with a second application (404), pausing the continuousor first audio 108 generated by the first application 104 based on thedetermining (406), playing and/or outputting interruptive audio 110generated by the second application 106 during the pausing of thecontinuous or first audio 108 (408), identifying a portion of thecontinuous or first audio 108 that was previously played before thefirst audio was paused (410), and resuming the playing and/or outputtingcontinuous or first audio 108 generated by the first application 104,the resuming including replaying and/or re-outputting a portion of thecontinuous or first audio 108 which was generated by the firstapplication 104 before the pausing, and/or resuming playing of thecontinuous or first audio 108 so that the portion of the continuous orfirst audio 108 that was previously played is replayed (412).

In an example implementation, the playing and/or outputting continuousor first audio 108 (402) may include playing and/or outputtingcontinuous or first audio 108 and continuous or first video generated bythe first application 104, and the resuming may include resuming theplaying and/or outputting continuous or first audio 108 and continuousor first video generated by the first application 104, the resumingincluding replaying and/or re-outputting the portion of the continuousor first audio 108 and a portion of the continuous or first video whichwere generated by the first application 104 before the pausing.

In an example implementation, the interrupt or interruptive notification204 associated with the second application 106 may be based on a userinput received by the computing device 100.

In an example implementation, the interrupt or interruptive notification204 associated with the second application 106 may be based on thecomputing device receiving a wireless signal.

In an example implementation, the second application 106 may include aphone or telephone application.

In an example implementation, the second application 106 may include anavigation application.

In an example implementation, the pausing (406) may include graduallyreducing a volume of the playing and/or outputting the continuous orfirst audio 108 generated by the first application 104, and the resumingmay include gradually increasing the volume of the playing and/oroutputting the continuous or first audio 108 generated by the firstapplication 104.

In an example implementation, the pausing (406) may include storingstreamed data read by the first application 104 while pausing theplaying and/or outputting continuous or first audio 108 generated by thefirst application 104, and the resuming may include playing and/oroutputting continuous or first audio 108 based on the stored streameddata.

In an example implementation, the resuming (412) may include resumingthe playing and/or outputting continuous or first audio 108 generated bythe first application 104, the resuming including replaying and/orre-outputting a complete sentence which was interrupted by the pausing(406).

In an example implementation, the resuming (412) may include resumingthe playing and/or outputting continuous or first audio 108 generated bythe first application 104, the resuming including replaying and/orre-outputting a complete sentence which was interrupted by the pausing(406), the complete sentence being determined by content indexing.

In an example implementation, the resuming (412) may include resumingthe playing and/or outputting continuous or first audio 108 generated bythe first application 104, the resuming beginning at a most recent tagin a file read by the first application 104.

In an example implementation, the playing and/or outputting (402) mayinclude playing and/or outputting continuous or first audio andcontinuous or first video generated by the first application 104, andthe resuming (412) may include resuming the playing and/or outputtingcontinuous or first audio 108 and continuous or first video generated bythe first application 104, the resuming including replaying and/orre-outputting the portion of the continuous or first audio and a portionof the continuous or first video at a beginning of a most recent scenewhich was generated by the first application 104 before the pausing(406).

FIG. 5 is a flowchart of a method 500 according to another exampleembodiment. In this example, the method may include determining, by afirst computing device 302, to temporarily interrupt playing and/oroutputting of continuous or first audio 306A by a second computingdevice 304 based on receiving a prompt (502), sending a pause message310 to the second computing device 304 based on the determining, thepause message 310 instructing the second computing device 304 to pauseplaying and/or outputting the continuous or first audio (504), playingand/or outputting interruptive audio 312 after sending the pause message(506) and sending a resume message 314 to the second computing device304 after playing and/or outputting the interruptive audio 312, theresume message 314 instructing the second computing device 304 to resumeplaying and/or outputting the continuous or first audio 306B (508).

In an example implementation, the pause message 310 may instruct thesecond computing device 304 to pause the playing and/or outputting andrewind the continuous or first audio 306A.

In an example implementation, the resume message 314 may instruct thesecond computing device 304 to rewind and resume the playing and/oroutputting the continuous or first audio 306B.

FIG. 6 is a block diagram showing example or representative computingdevices and associated elements that may be used to implement thesystems and methods of FIGS. 1-5. FIG. 6 shows an example of a genericcomputer device 600 and a generic mobile computer device 650, which maybe used with the techniques described here. Computing device 600 isintended to represent various forms of digital computers, such aslaptops, desktops, workstations, personal digital assistants, servers,blade servers, mainframes, and other appropriate computers. Computingdevice 650 is intended to represent various forms of mobile devices,such as personal digital assistants, cellular telephones, smart phones,and other similar computing devices. The components shown here, theirconnections and relationships, and their functions, are meant to beexemplary only, and are not meant to limit implementations of theinventions described and/or claimed in this document.

Computing device 600 includes a processor 602, memory 604, a storagedevice 606, a high-speed interface 608 connecting to memory 604 andhigh-speed expansion ports 610, and a low speed interface 612 connectingto low speed bus 614 and storage device 606. Each of the components 602,604, 606, 608, 610, and 612, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 602 can process instructions for executionwithin the computing device 600, including instructions stored in thememory 604 or on the storage device 606 to display graphical informationfor a GUI on an external input/output device, such as display 616coupled to high speed interface 608. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices600 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 604 stores information within the computing device 600. Inone implementation, the memory 604 is a volatile memory unit or units.In another implementation, the memory 604 is a non-volatile memory unitor units. The memory 604 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 606 is capable of providing mass storage for thecomputing device 600. In one implementation, the storage device 606 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 604, the storage device 606,or memory on processor 602.

The high speed controller 608 manages bandwidth-intensive operations forthe computing device 600, while the low speed controller 612 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 608 iscoupled to memory 604, display 616 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 610, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 612 is coupled to storage device 606 and low-speed expansionport 614. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 600 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 620, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 624. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 622. Alternatively, components from computing device 600 may becombined with other components in a mobile device (not shown), such asdevice 650. Each of such devices may contain one or more of computingdevice 600, 650, and an entire system may be made up of multiplecomputing devices 600, 650 communicating with each other.

Computing device 650 includes a processor 652, memory 664, aninput/output device such as a display 654, a communication interface666, and a transceiver 668, among other components. The device 650 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 650, 652,664, 654, 666, and 668, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 652 can execute instructions within the computing device650, including instructions stored in the memory 664. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor may provide, for example,for coordination of the other components of the device 650, such ascontrol of user interfaces, applications run by device 650, and wirelesscommunication by device 650.

Processor 652 may communicate with a user through control interface 658and display interface 656 coupled to a display 654. The display 654 maybe, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. The display interface 656 may comprise appropriatecircuitry for driving the display 654 to present graphical and otherinformation to a user. The control interface 658 may receive commandsfrom a user and convert them for submission to the processor 652. Inaddition, an external interface 662 may be provide in communication withprocessor 652, so as to enable near area communication of device 650with other devices. External interface 662 may provide, for example, forwired communication in some implementations, or for wirelesscommunication in other implementations, and multiple interfaces may alsobe used.

The memory 664 stores information within the computing device 650. Thememory 664 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 674 may also be provided andconnected to device 650 through expansion interface 672, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 674 may provide extra storage space fordevice 650, or may also store applications or other information fordevice 650. Specifically, expansion memory 674 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 674may be provide as a security module for device 650, and may beprogrammed with instructions that permit secure use of device 650. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 664, expansionmemory 674, or memory on processor 652, that may be received, forexample, over transceiver 668 or external interface 662.

Device 650 may communicate wirelessly through communication interface666, which may include digital signal processing circuitry wherenecessary. Communication interface 666 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 668. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning system) receiver module 670 mayprovide additional navigation- and location-related wireless data todevice 650, which may be used as appropriate by applications running ondevice 650.

Device 650 may also communicate audibly using audio codec 660, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 660 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 650. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 650.

The computing device 650 may be implemented in a number of differentforms, as shown in FIG. 6. For example, it may be implemented as acellular telephone 680. It may also be implemented as part of a smartphone 682, personal digital assistant, or other similar mobile device.

Implementations of the various techniques described herein may beimplemented in digital electronic circuitry, or in computer hardware,firmware, software, or in combinations of them. Implementations mayimplemented as a computer program product, i.e., a computer programtangibly embodied in an information carrier, e.g., in a machine-readablestorage device, for execution by, or to control the operation of, dataprocessing apparatus, e.g., a programmable processor, a computer, ormultiple computers. A computer program, such as the computer program(s)described above, can be written in any form of programming language,including compiled or interpreted languages, and can be deployed in anyform, including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment. Acomputer program can be deployed to be executed on one computer or onmultiple computers at one site or distributed across multiple sites andinterconnected by a communication network.

Method steps may be performed by one or more programmable processorsexecuting a computer program to perform functions by operating on inputdata and generating output. Method steps also may be performed by, andan apparatus may be implemented as, special purpose logic circuitry,e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. Elements of a computer may include atleast one processor for executing instructions and one or more memorydevices for storing instructions and data. Generally, a computer alsomay include, or be operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks. Informationcarriers suitable for embodying computer program instructions and datainclude all forms of non-volatile memory, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory may be supplemented by, or incorporated in special purposelogic circuitry.

To provide for interaction with a user, implementations may beimplemented on a computer having a display device, e.g., a cathode raytube (CRT) or liquid crystal display (LCD) monitor, for displayinginformation to the user and a keyboard and a pointing device, e.g., amouse or a trackball, by which the user can provide input to thecomputer. Other kinds of devices can be used to provide for interactionwith a user as well; for example, feedback provided to the user can beany form of sensory feedback, e.g., visual feedback, auditory feedback,or tactile feedback; and input from the user can be received in anyform, including acoustic, speech, or tactile input.

Implementations may be implemented in a computing system that includes aback-end component, e.g., as a data server, or that includes amiddleware component, e.g., an application server, or that includes afront-end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user can interact with animplementation, or any combination of such back-end, middleware, orfront-end components. Components may be interconnected by any form ormedium of digital data communication, e.g., a communication network.Examples of communication networks include a local area network (LAN)and a wide area network (WAN), e.g., the Internet.

While certain features of the described implementations have beenillustrated as described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the embodiments of the invention.

What is claimed is:
 1. A method comprising: outputting, by a firstapplication, continuous audio corresponding to a file read by the firstapplication, wherein the first application is executing on a computingdevice; receiving, at the first application, an interruptivenotification associated with a second application, wherein theinterruptive notification corresponds to interrupting the continuousaudio output by the first application; pausing the outputting continuousaudio by the first application based on receiving the interruptivenotification; analyzing, by the first application, the continuous audioto identify a portion of the continuous audio that was previously outputto be re-output; outputting interruptive audio associated with theinterruptive notification and the second application during the pausing;and in response to receiving, by the first application, a resume messageupon completion of the interruptive audio, resuming the outputtingcontinuous audio by the first application at a location associated witha most recent tag in the file read by the first application, theresuming including automatically re-outputting, without user interactionor instruction, the portion of the continuous audio identified by thefirst application, wherein the most recent tag in the file read by thefirst application is included in the file from which the firstapplication outputs the continuous audio.
 2. The method of claim 1,wherein: the outputting continuous audio includes outputting continuousaudio and continuous video generated by the first application; theidentifying includes identifying a portion of the continuous audio and aportion of continuous video that was previously output to be re-output;the resuming includes resuming the outputting continuous audio andcontinuous video generated by the first application, the resumingincluding re-outputting the portion of the continuous audio and theportion of the continuous video identified by the first application. 3.The method of claim 1, wherein the interruptive notification associatedwith the second application is based on a user input received by thecomputing device.
 4. The method of claim 1, wherein the secondapplication includes a phone application.
 5. The method of claim 1,wherein the second application includes a navigation application.
 6. Themethod of claim 1, wherein: the pausing includes gradually reducing avolume of the outputting the continuous audio; and the resuming includesgradually increasing the volume of the outputting the continuous audio.7. The method of claim 1, wherein: the pausing includes storing streameddata read by the first application while pausing the outputtingcontinuous audio; and the resuming includes outputting continuous audiobased on the stored streamed data.
 8. The method of claim 1, wherein thetag is associated with a beginning of a complete sentence, and resumingincludes re-outputting the complete sentence that was interrupted by thepausing, the complete sentence being determined by the first applicationbased on content indexing.
 9. The method of claim 1, wherein: theoutputting the continuous audio includes outputting the continuous audioand continuous video; the identifying includes identifying a portion ofthe continuous audio and a portion of continuous video that waspreviously output to be re-output; and the resuming includes resumingthe outputting continuous audio and the continuous video, wherein theresuming includes re-outputting the portion of the continuous audio andthe portion of the continuous video at a beginning of a most recentscene identified by the first application before the pausing, whereinthe tag is associated with a beginning of the most recent scene is basedon a change in video output.
 10. The method of claim 1, wherein theresuming includes re-outputting a complete sentence of the continuousaudio which was generated by the first application before the pausingand was interrupted by the pausing.
 11. An apparatus comprising: atleast one processor; and at least one memory comprising computerexecutable code that, when executed by the at least one processor, isconfigured to cause the apparatus to: output, by a first application,continuous audio corresponding to a file read by the first application,wherein the first application is executed by the at least one processor;receive, at the first application, an interruptive notificationassociated with a second application, wherein the interruptivenotification corresponds to interrupting the continuous audio output bythe first application; pause the outputting continuous audio by thefirst application based on receiving the interruptive notification;analyze, by the first application, the continuous audio to identify aportion of the continuous audio that was previously output to bere-output; output interruptive audio associated with the interruptivenotification and the second application during the pausing; and inresponse to receiving, by the first application, a resume message uponcompletion of the interruptive audio, resume the outputting continuousaudio by the first application at a location associated with a mostrecent tag in the file read by the first application, the resumingincluding automatically re-outputting, without user interaction orinstruction, the portion of the continuous audio identified by the firstapplication, wherein the most recent tag in the file read by the firstapplication is included in the file from which the first applicationoutputs the continuous audio.
 12. The apparatus of claim 11, wherein:the outputting continuous audio includes outputting continuous audio andcontinuous video generated by the first application; the identifyingincludes identifying a portion of the continuous audio and a portion ofcontinuous video that was previously output to be re-output; theresuming includes resuming the outputting continuous audio andcontinuous video generated by the first application, the resumingincluding re-outputting the portion of the continuous audio and theportion of the continuous video identified by the first application. 13.The apparatus of claim 11, wherein the interruptive notificationassociated with the second application is based on a user input receivedby the apparatus.
 14. The apparatus of claim 11, wherein the secondapplication includes a phone application.
 15. The apparatus of claim 11,wherein the second application includes a navigation application. 16.The apparatus of claim 11, wherein: the pausing includes graduallyreducing a volume of the outputting the continuous audio; and theresuming includes gradually increasing the volume of the outputting thecontinuous audio.
 17. The apparatus of claim 11, wherein: the pausingincludes storing streamed data read by the first application whilepausing the outputting continuous audio; and the resuming includesoutputting continuous audio based on the stored streamed data.
 18. Theapparatus of claim 11, wherein the tag is associated with a beginning ofa complete sentence, and resuming includes re-outputting the completesentence that was interrupted by the pausing, the complete sentencebeing determined by the first application based on content indexing. 19.The apparatus of claim 11, wherein: the outputting the continuous audioincludes outputting the continuous audio and continuous video; theidentifying includes identifying a portion of the continuous audio and aportion of continuous video that was previously output to be re-output;and the resuming includes resuming the outputting continuous audio andthe continuous video, wherein the resuming includes re-outputting theportion of the continuous audio and the portion of the continuous videoat a beginning of a most recent scene identified by the firstapplication before the pausing, wherein the tag is associated with abeginning of the most recent scene is based on a change in video output.20. The apparatus of claim 11, wherein the resuming includesre-outputting a complete sentence of the continuous audio which wasgenerated by the first application before the pausing and wasinterrupted by the pausing.
 21. A non-transitory computer-readablestorage medium comprising computer-executable code stored thereon that,when executed by a processor, is configured to cause a computing deviceto: output, by a first application, continuous audio corresponding to afile read by the first application, wherein the first application isexecuting on the computing device; receive, at the first application, atemporary interruption message from an operating system executed by theprocessor, wherein the temporary interruption message corresponds tointerrupting the continuous audio output by the first application; pausethe outputting the continuous audio based on receiving the temporaryinterruption message; analyze, by the first application, the continuousaudio to identify a portion of the continuous audio that was previouslyoutput to be re-output; output interruptive audio associated with thetemporary interruption message during the pausing; receive, by the firstapplication, a resume message from the operating system; and resumeoutputting the continuous audio in response to receiving the resumemessage, the resuming including automatically re-outputting, withoutuser interaction or instruction, the portion of the continuous audioidentified by the first application beginning at a location associatedwith a most recent tag in the file read by the first application,wherein the most recent tag in the file read by the first application isincluded in the file from which the first application outputs thecontinuous audio.
 22. The storage medium of claim 21, wherein: theoutputting continuous audio includes outputting continuous audio andcontinuous video; the identifying includes identifying a portion of thecontinuous audio and a portion of continuous video that was previouslyoutput to be re-output; the resuming includes resuming the outputtingcontinuous audio and continuous video, the resuming includingre-outputting the portion of the continuous audio and the portion of thecontinuous video identified by the first application.
 23. The storagemedium of claim 21, wherein: the pausing includes gradually reducing avolume of the outputting the continuous audio; and the resuming includesgradually increasing the volume of the outputting the continuous audio.24. The storage medium of claim 21, wherein: the pausing includesstoring streamed data while pausing the outputting continuous audio; andthe resuming includes outputting continuous audio based on the storedstreamed data.
 25. The storage medium of claim 21, wherein the tag isassociated with a beginning of a complete sentence, and resumingincludes re-outputting the complete sentence that was interrupted by thepausing, the complete sentence being determined by the first applicationbased on content indexing.
 26. The storage medium of claim 21, wherein:the outputting the continuous audio includes outputting the continuousaudio and continuous video; the identifying includes identifying aportion of the continuous audio and a portion of continuous video thatwas previously output to be re-output; and the resuming includesresuming the outputting continuous audio and the continuous video,wherein the resuming includes re-outputting the portion of thecontinuous audio and the portion of the continuous video at a beginningof a most recent scene identified by the first application before thepausing, wherein the tag is associated with a beginning of the mostrecent scene is based on a change in video output.
 27. The storagemedium of claim 21, wherein the receiving the temporary interruptionmessage includes receiving the temporary interruption message from theoperating system based on a user input.
 28. The storage medium of claim21, wherein the receiving the temporary interruption message includesreceiving the temporary interruption message from the operating systembased on a navigation application run by the operating system.
 29. Thestorage medium of claim 21, wherein the operating system includes amobile phone operating system.
 30. The storage medium of claim 21,wherein the resuming includes re-outputting a complete sentence of thecontinuous audio which was generated by the application before thepausing and was interrupted by the pausing.
 31. A method comprising:outputting, by a first application, continuous audio corresponding to afile read by the first application, wherein the first application isexecuting on a computing device, the continuous audio being based oncontent streamed from a sending device; receiving, at the firstapplication, an interruptive notification associated with a secondapplication, wherein the interruptive notification corresponds tointerrupting the continuous audio output by the first application;pausing the outputting continuous audio by the first application basedon receiving the interruptive notification, the pausing includingsending a message to the sending device to pause or rewind the streamedcontent; analyzing, by the first application, the continuous audio toidentify a portion of the continuous audio that was previously output tobe re-output; outputting interruptive audio associated with theinterruptive notification and the second application during the pausing;and resuming the outputting continuous audio by the first application,the resuming including automatically re-outputting, without userinteraction or instruction, the portion of the continuous audioidentified by the first application beginning at a location associatedwith a most recent tag in the file read by the first application,wherein the most recent tag in the file read by the first application isincluded in the file from which the first application outputs thecontinuous audio.
 32. The method of claim 31, wherein the pausingincludes sending a message to the sending device to pause the streamedcontent.
 33. The method of claim 31, wherein the pausing includessending a message to the sending device to rewind the streamed content.34. An apparatus comprising: at least one processor; and at least onememory comprising computer executable code that, when executed by the atleast one processor, is configured to cause the apparatus to: output, bya first application, continuous audio corresponding to a file read bythe first application, wherein the first application is executed by theat least one processor, the continuous audio being based on contentstreamed from a sending device; receive, at the first application, aninterruptive notification associated with a second application, whereinthe interruptive notification corresponds to interrupting the continuousaudio output by the first application; pause the outputting continuousaudio by the first application based on receiving the interruptivenotification, the pausing including sending a message to the sendingdevice to pause or rewind the streamed content; analyze, by the firstapplication, the continuous audio to identify a portion of thecontinuous audio that was previously output to be re-output; outputinterruptive audio associated with the interruptive notification and thesecond application during the pausing; and resume the outputtingcontinuous audio by the first application, the resuming includingautomatically re-outputting, without user interaction or instruction,the portion of the continuous audio identified by the first applicationbeginning at a location associated with a most recent tag in the fileread by the first application, wherein the most recent tag in the fileread by the first application is included in the file from which thefirst application outputs the continuous audio.
 35. The apparatus ofclaim 34, wherein the pausing includes sending a message to the sendingdevice to pause the streamed content.
 36. The apparatus of claim 34,wherein the pausing includes sending a message to the sending device torewind the streamed content.
 37. A non-transitory computer-readablestorage medium comprising computer-executable code stored thereon that,when executed by a processor, is configured to cause a computing deviceto: output, by a first application, continuous audio corresponding to afile read by the first application, wherein the first application isexecuting on the computing device, the continuous audio being based oncontent streamed from a sending device; receive, at the firstapplication, a temporary interruption message from an operating systemexecuted by the processor, wherein the temporary interruption messagecorresponds to interrupting the continuous audio output by the firstapplication; pause the outputting the continuous audio based onereceiving the temporary interruption message, the pausing includingsending a message to the sending device to pause or rewind the streamedcontent; analyze, by the first application, the continuous audio toidentify a portion of the continuous audio that was previously output tobe re-output; output interruptive audio associated with the temporaryinterruption message during the pausing; receive, by the firstapplication, a resume message from the operating system; and resumeoutputting the continuous audio in response to receiving the resumemessage, the resuming including automatically re-outputting, withoutuser interaction or instruction, the portion of the continuous audioidentified by the first application beginning at a location associatedwith a most recent tag in the file read by the first application,wherein the most recent tag in the file read by the first application isincluded in the file from which the first application outputs thecontinuous audio.
 38. The storage medium of claim 37, wherein thepausing includes sending a message to the sending device to pause thestreamed content.
 39. The storage medium of claim 37, wherein thepausing includes sending a message to the sending device to rewind thestreamed content.